package com.example.design.pattern.behavior

/**
 *Create by Fanketly on 2022/9/1
 *Gitee:https://gitee.com/fanketly
 *desc:目的：也是用来解耦的。通常请求者和实现者是一种耦合关系，但一些场合对行为记录、撤销、重做，这种请求和处理就不太适合在一起
优点：解耦，易扩展
缺点：命令类可能会变的很多
 */
class Manager{
    val list= mutableListOf(Buy(),Sell())
    fun  takeOrder(order: Order){
        list.add(order)
    }
    fun placeOrder(){
        list.forEach {
            it.execute()
        }
        list.clear()
    }
}
class Stock{
    fun buy(){

    }
    fun sell(){

    }
}
interface Order{
    fun execute()
}
class Buy:Order{
    val stock=Stock()
    override fun execute() {
    stock.buy()
    }

}
class Sell:Order{
    val stock=Stock()
    override fun execute() {
    stock.sell()
    }

}

